import Vue from 'vue'
import Router from 'vue-router'
import { routers, base } from './config'

Vue.use(Router)

let route = []
routers.map(v => {
  v.child.map(k => {
    if (k.url) {
      return route.push({
        path: `${base}admin${k.url}`,
        component: () => import(`../pages${k.url}.vue`)
      })
    }
    if (k.child) {
      k.child.map(j => {
        route.push({
          path: `${base}admin${j.url}`,
          component: () => import(`../pages${j.url}.vue`)
        })
      })
    }
  })
})

let adminRoute = [
  {
    // path为 / ，就是默认路由
    path: `${base}`,
    // 路由重定向，一启动项目就跳转到登陆界面
    redirect: `${base}login`
  },
  {
    path: `${base}login`,
    // 懒加载方式，当路由被访问的时候才加载对应组件
    component: () => import('../pages/login/index.vue')
  },
  {
    path: `${base}admin`,
    component: () => import('../pages/admin.vue'),
    children: route
  },
  {
    // 404页面配置  如果访问的路由不存在，或者用户输入错误时，会有一个404友好的提示页面
    path: `*`,
    component: () => import('../components/error404.vue')
  }
]

export default new Router({
  // 去除hash路由默认的#
  // vue路由默认的是hash的模式, 开启history默认 可以向正常的路由访问
  // 但是这种需要后端支持， 不然很容易404
  mode: 'hash',
  routes: adminRoute
})
